package com.ruoyi.personnel.management.staff.service;

import com.ruoyi.personnel.management.staff.domain.Staff;
import com.ruoyi.personnel.management.staff.domain.StaffLeaveRecord;
import com.ruoyi.personnel.management.staff.domain.StaffReinstateRecord;
import com.ruoyi.personnel.management.staff.domain.StaffTransferRecord;

import java.util.List;

/**
 * 员工信息
 * 业务层
 * @author Drj 2021/6/28
 */
public interface IStaffService {
    /**
     * 查询员工数组
     * @param staff
     * @return
     */
    public List<Staff> selectStaffList(Staff staff);

    /**
     * 根据员工编号查询
     * @param staffId 员工编号
     * @return
     */
    public Staff selectStaffById(String staffId);

    /**
     * 新增员工
     * @param staff 员工信息
     * @return
     */
    public int insertStaff(Staff staff);

    /**
     * 更新员工
     * @param staff 员工信息
     * @return
     */
    public int updateStaff(Staff staff);

    /**
     * 删除员工
     * 仅修改员工删除标志
     * @param staff
     * @return
     */
    public int updateStaffDeleteFlag(Staff staff);



    /**
     * 查询员工离职记录
     * @param staffLeaveRecord
     * @return
     */
    public List<StaffLeaveRecord>selectStaffLeaveRecordList(StaffLeaveRecord staffLeaveRecord);

    /**
     * 查询员工复职记录
     * @param staffReinstateRecord
     * @return
     */
    public List<StaffReinstateRecord>selectStaffReinstateRecordList(StaffReinstateRecord staffReinstateRecord);

    /**
     * 查询员工调动记录
     * @param staffTransferRecord
     * @return
     */
    public List<StaffTransferRecord>selectStaffTransferRecordList(StaffTransferRecord staffTransferRecord);
}
